<?php

namespace SwoStar\Config;

class Config
{

    protected $itmes = [];

    function __construct($path)
    {
        // 读取配置
        $this->itmes = $this->phpParser($path);
    }

    /**
     * 读取PHP文件类型的配置文件
     * $path路径为当前服务器的config文件位置： /docker/www/work/18/activities/config
     * @param $path
     * @return null
     */
    protected function phpParser($path)
    {
        // 1 . 找到当前config目录中下的所有配置文件
        // 此处跳过多级的情况
        $files = scandir($path);

        $data = null;

        // 2. 读取文件信息
        foreach ($files as $key => $file) {
            // 2 . 1 过滤操作
            if ($file === '.' || $file === '..') {
                continue;
            }

            // 2.2 获取文件名
            $filename = \stristr($file, ".php", true);

            // 2.3 拼接路径，加载文件信息到框架中
            //路径 ：  /docker/www/work/18/activities/config/service.php
            $data[$filename] = include $path."/".$file;
        }

        // 3. 返回
        return $data;
    }

    /**
     * 解析配置文件的配置信息
     * key.key2.key3
     * @param $keys
     * @return array|mixed|null
     */
    public function get($keys)
    {
        $data = $this->itmes;

        foreach (\explode('.', $keys) as $key => $value) {
            $data = $data[$value];
        }

        return $data;
    }
}
